package com.virtualightning.core.processor.observer.anno

/**
 *  Anchor : Create by CimZzz
 *  Time : 2021/12/30 11:04
 *  转换观察者接口
 */
interface IObserverConvertor<T> {
	/**
	 * 转换指定观察对象方法
	 */
	fun asObserver(): T
}

/**
 * 观察者数据转换方法
 * @receiver List<IObserverConvertor<T>> 观察者数据转换列表
 * @return List<T> 转化后的观察者列表
 */
inline fun <reified T> List<IObserverConvertor<T>>.asObserver(): List<T> {
	return map { it.asObserver() }.toList()
}